package common

import (
	"os"
	"path"
	"path/filepath"
	"strings"

	"src/util/flags"
)

const (
	//服务器配置文件
	ServerJson = "srv"
	//服务器名字
	ServerName = "sname"
	// 服务器编号
	ServerNumber = "no"
	// 是否创建DB
	ServerCreateDB = "cdb"
	// docker传入的本地IP
	DockerIP = "ip"
	// docker传入的对外端口
	DockerPost = "publicport"
)

func init() {
	//为了确保运行时，一定在对应的BIN目录下运行
	CurrentDirectory()
	// fmt.Println("pwd:", dir)
	// flags.SetFlag("service", "SERVICE", "是否为服务", "false")
	flags.SetFlag("res", "RES", "设置资源目录", "../res/")
	flags.SetFlag(ServerJson, strings.ToUpper(ServerJson), "服务器配置文件路径，相对与bin目录", path.Join(GetResPath(), "config", "server.json"))
	// flags.SetFlag(ServerIP, strings.ToUpper(ServerIP), "服务器对外IP.默认使用server.json", "")
	flags.SetFlag(ServerNumber, strings.ToUpper(ServerNumber), "服务器编号", "0")

}

// 设置程序目录为当前目录
func CurrentDirectory() string {
	//返回绝对路径  filepath.Dir(os.Args[0])去除最后一个元素的路径
	dir, _ := filepath.Abs(filepath.Dir(os.Args[0]))
	os.Chdir(dir)
	return dir
	// //将\替换成/
	// return strings.Replace(dir, "\\", "/", -1)
}

// 获取资源目录
func GetResPath() (result string) {
	result = flags.GetFlagByString("res")
	if result == "" {
		result = flags.GetEnvByString("RES")
	}
	return
}
